<?php
def("amicitia/modelo/ejecucion/","Regla");
def("amicitia/modelo/entidades/","Pareja");
def("amicitia/modelo/entidades/","Persona");
def("amicitia/modelo/entidades/","Juego");

/**
 * Esta regla verifica que una pareja específica no pueda ocurrir.
 * 
 * @author WIlly A. Kuster
 */
class ReglaParejaImposible implements Regla {
	
	private $bidireccional = false;
	private $parejaImposible;
	
	public function verificar(Pareja $pareja, Persona $interesado, array $rama, Juego $juego) {
		if(!$this->bidireccional){
			if($pareja->getDador()->getId()==$this->parejaImposible->getDador()->getId() &&
			$pareja->getReceptor()->getId()==$this->parejaImposible->getReceptor()->getId())
				return false;
			else
				return true;
		} else {
			if(($pareja->getDador()->getId()==$this->parejaImposible->getDador()->getId() &&
			$pareja->getReceptor()->getId()==$this->parejaImposible->getReceptor()->getId()) ||
			($pareja->getDador()->getId()==$this->parejaImposible->getReceptor()->getId() &&
			$pareja->getReceptor()->getId()==$this->parejaImposible->getDador()->getId()))
				return false;
			else
				return true;
		}
		return true;
	}

	public function setParejaImposible(Pareja $parejaImposible) {
		$this->parejaImposible = $parejaImposible;
	}
	
	public function setBidireccional($bidireccional) {
		$this->bidireccional = $bidireccional;
	}
	
}
?>